Many data center applications are based on a many-to-one communication pattern. The many-to-one communication pattern may be implemented with distributed storage and computation frameworks. In this pattern, a server issues a request for data to a plurality of worker nodes. The server often waits for responses from all of the worker nodes before proceeding to a new process. Waiting for the plurality of responses often means the total completion time of the request (i.e., the length of time from the issuance of the request until the server can proceed to the next process) is dictated by the slowest worker node.